package DataStructureAndAlgorithm.AcWing_每日一题.贪心题;

//链接：https://www.acwing.com/problem/content/3820/

import java.util.*;
//题目要求的是：
//是否存在一种方案，使得从A中选k个数，B中选m个数。
//使得，B中选的m个数都大于A中选的k个数
//所以，可以从问题的边界出发，求A中可能选到的k个数中的最小的最大值X
//和从B中选到的m个数中的最大的最小值Y,使得X < Y 成立即可
//又两个数组是有序的，所以，对A从左边求第k个数即X，对B从右边求第m个数即Y
class AcWing_3817{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        int na = in.nextInt();
        int nb = in.nextInt();
        int k = in.nextInt();
        int m = in.nextInt();
        int[] numa = new int[na + 1];
        int[] numb = new int[nb + 1];
        for (int i = 1; i <= na; i++){
            numa[i] = in.nextInt();
        }
        for (int i = 1; i <= nb; i++){
            numb[i] = in.nextInt();
        }

        if (numa[k] < numb[nb - m + 1]){
            System.out.println("YES");
        }else {
            System.out.println("NO");
        }
        in.close();
    }
}